Contract-based Verification and Test Case Generation for Open Systems
نویسنده
چکیده
Current practices in software development heavily emphasize the development of reusable and modular software, which allow software components to be developed and maintained independently. While a component-oriented approach offers a number of benefits, it presents several quality assurance challenges including validating the correctness of individual components as well as their integration. Design-by-contract (DBC) offers a promising solution that emphasizes precisely defined and checkable interface specifications for software components. However, existing tools for the DBC paradigm often have some weaknesses: (1) they have difficulty in dealing with dynamically allocated data; (2) specification and checking efforts are disconnected from quality assurance tools; and (3) user feedback is quite poor. We present Kiasan, a framework that synergistically combines a number of automated reasoning techniques including symbolic execution, model checking, theorem proving, and constraint solving to support design-by-contract reasoning of object-oriented programs written in languages such as Java and C#. Compared to existing approaches to Java contract verification, Kiasan can check much stronger behavioral properties of object-oriented software including properties that make extensive use of heap-allocated data and provide stronger coverage guarantees. In addition, Kiasan naturally generates counter examples illustrating contract violations, visualization of code effects, and JUnit test cases that are driven by code and user-supplied specifications. Coverage/cost trade-offs are controlled by user-specified bounds on the length of heap-reference chains and number of loop iterations. Kiasan’s unit test case generation facilities compare very favorably with similar tools. Finally, in contrast to other approaches based on symbolic execution, Kiasan has a rigorous foundation: we have shown that Kiasan is relatively sound and complete and the test case generation algorithm is sound. CONTRACT-BASED VERIFICATION AND TEST CASE GENERATION FOR OPEN SYSTEMS by XIANGHUA DENG B.S., Xi’an Jiaotong University, China, 1993 M.S., Kansas State University, 2001 A DISSERTATION submitted in partial fulfillment of the requirements for the degree DOCTOR OF PHILOSOPHY Department of Computing and Information Sciences College of Engineering KANSAS STATE UNIVERSITY Manhattan, Kansas 2007
منابع مشابه
E2E Testing and Evaluation of High Assurance Systems
DoD E2E Testing and Evaluation (T&E) technology for high assurance system has evolved from specification and analysis of thin threads, through system scenarios, and to the scenario-driven system engineering including reliability, security, and safety assurance, as well as dynamic verification and validation. Currently, E2E T&E technology is entering the fourth generation and being applied to th...
متن کاملContract-Based Design for Computation and Verification of a Closed-Loop Hybrid System
Contract-based design is an approach where the design process is seen as a successive assembly of components where a component is represented in terms of assumptions about its environment and guarantees about its behavior. In the composition, if assumptions of each component are contained in guarantees offered by the others, then the composition is well formed. In this paper, we focus on contra...
متن کاملA Stochastic Operational Planning Model for Smart Power Systems
Smart Grids are result of utilizing novel technologies such as distributed energy resources, and communication technologies in power system to compensate some of its defects. Various power resources provide some benefits for operation domain however, power system operator should use a powerful methodology to manage them. Renewable resources and load add uncertainty to the problem. So, independe...
متن کاملBakar Kiasan: Flexible Contract Checking for Critical Systems Using Symbolic Execution
Spark, a subset of Ada for engineering safety and security-critical systems, is one of the best commercially available frameworks for formal-methodssupported development of critical software. Spark is designed for verification and includes a software contract language for specifying functional properties of procedures. Even though Spark and its static analysis components are beneficial and easy...
متن کاملAn Automatic Safety-Based Test Case Generation Approach Based on Systems-Theoretic Process Analysis
Software safety remains one of the essential and vital aspects in today’s systems. Software is becoming responsible for most of the critical functions of systems. Therefore, the software components in the systems need to be tested extensively against their safety requirements to ensure a high level of system safety. However, performing testing exhaustively to test all software behaviours is imp...
متن کامل